In computer applications, users display and interact with a variety of digital content. This content may include images, video, documents, web pages, applications, or any other information. Often more than one type of content needs to be viewed simultaneously. Windowing systems are employed in graphical operating systems for this purpose. A window defines a region, or area, on a display that will hold a particular digital content. Multiple windows can be defined and can overlap one another for the purpose of sharing a limited display area.
Frequently, it is necessary to display content whose dimensions are larger than any available display, or window region, is capable of containing. Also, in many instances, users need to work with fine details that require magnifying or scaling the digital content. For example, a user may need to magnify a document for legibility, or may need to make precise adjustments to a figure in an engineering or painting program. Typically it is difficult or impossible to contain the entire digital content at the required scale within the available display area or window region.
To facilitate these difficulties, windowing user interfaces often use a standard mechanism called the viewport. A viewport defines a dimensional area mapped to a position over a source content. The dimensions and position of the viewport determine if all or a portion of the source content is mapped. A region within a user interface window typically contains a viewport window which provides a view through the viewport to the mapped portion of the source content. The dimensions of the viewport window are typically limited to that of the window region the viewport window occupies. The window containing the viewport window typically provides some means for adjusting the position of the viewport over the source content, thus affecting which portion of the source content is visible in the viewport window. The relationship between viewport window dimensions and the viewport is not fixed. The viewport dimensions may be smaller or larger than the viewport window and thus the viewport window would show a scaled version of the viewport mapped source content.
Operating system user interfaces typically allow for moving and resizing windows. Resizing a window containing a viewport window may result in the viewport window's dimensions being resized, which in turn could change the size of the viewport, thereby revealing more or less source content as seen through the viewport window. Alternately, a change in size of the viewport window may not change the size of the viewport, thereby resulting in a scaled version of the source content. However, moving a window on a display usually does not change the viewport window's view of the source content as the viewport's relative position to the source is unchanged. Other interfaces are usually used to reposition a viewport relative to the source content. These interfaces may include mechanisms to position the viewport at specific positions over the source content, e.g. center, top-left, etc. Alternatively, the interfaces may provide a method for continuous repositioning toward a target direction, i.e. panning.
Some of the most common techniques for panning a viewport include scrollbars, automatic panning boundary region, drag panning, and mouse/wheel control panning. Each of these techniques has disadvantages, such as, limiting the available viewing area, limited ability to customize control of the panning, limited feedback to the user about the panning operation and other intrusive characteristics.
As a result, there is a need to solve the problems of the prior art to provide a method and apparatus for panning a viewport using a non-intrusive interface where the user is provided feedback in a minimally intrusive manner and where the viewport panning operation may be modified by a user.